home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 26.zip / BS1 part 26 / Aztec C v5.2a disk 4.adf / 204inc_h.lzh / rexx / rxslib.h < prev    next >
C/C++ Source or Header  |  1991-03-14  |  4KB  |  109 lines

  1. #ifndef REXX_RXSLIB_H
  2. #define REXX_RXSLIB_H
  3. /*
  4. **    $Filename: rexx/rxslib.h $
  5. **    $Release: 2.04 $
  6. **    $Revision: 1.4 $
  7. **    $Date: 90/09/27 $
  8. **
  9. **    The header file for the REXX Systems Library
  10. **
  11. **    (C) Copyright 1987,1988,1989,1990 William S. Hawes
  12. **        All Rights Reserved
  13. */
  14.  
  15. #ifndef REXX_STORAGE_H
  16. #include "rexx/storage.h"
  17. #endif
  18.  
  19. #define RXSNAME  "rexxsyslib.library"
  20. #define RXSDIR     "REXX"
  21. #define RXSTNAME "ARexx"
  22.  
  23. /* The REXX systems library structure.    This should be considered as    */
  24. /* semi-private and read-only, except for documented exceptions.    */
  25.  
  26. struct RxsLib {
  27.    struct Library rl_Node;           /* EXEC library node        */
  28.    UBYTE    rl_Flags;               /* global flags            */
  29.    UBYTE    rl_Shadow;               /* shadow flags            */
  30.    APTR     rl_SysBase;           /* EXEC library base        */
  31.    APTR     rl_DOSBase;           /* DOS library base        */
  32.    APTR     rl_IeeeDPBase;           /* IEEE DP math library base    */
  33.    LONG     rl_SegList;           /* library seglist        */
  34.    LONG     rl_NIL;               /* global NIL: filehandle    */
  35.    LONG     rl_Chunk;               /* allocation quantum        */
  36.    LONG     rl_MaxNest;           /* maximum expression nesting    */
  37.    struct NexxStr *rl_NULL;           /* static string: NULL        */
  38.    struct NexxStr *rl_FALSE;           /* static string: FALSE        */
  39.    struct NexxStr *rl_TRUE;           /* static string: TRUE        */
  40.    struct NexxStr *rl_REXX;           /* static string: REXX        */
  41.    struct NexxStr *rl_COMMAND;           /* static string: COMMAND    */
  42.    struct NexxStr *rl_STDIN;           /* static string: STDIN        */
  43.    struct NexxStr *rl_STDOUT;           /* static string: STDOUT    */
  44.    struct NexxStr *rl_STDERR;           /* static string: STDERR    */
  45.    STRPTR    rl_Version;           /* version string        */
  46.  
  47.    STRPTR    rl_TaskName;           /* name string for tasks    */
  48.    LONG      rl_TaskPri;           /* starting priority        */
  49.    LONG      rl_TaskSeg;           /* startup seglist        */
  50.    LONG      rl_StackSize;           /* stack size            */
  51.    STRPTR    rl_RexxDir;           /* REXX directory        */
  52.    STRPTR    rl_CTABLE;           /* character attribute table    */
  53.    STRPTR    rl_Notice;           /* copyright notice        */
  54.  
  55.    struct MsgPort rl_RexxPort;           /* REXX public port        */
  56.    UWORD     rl_ReadLock;           /* lock count            */
  57.    LONG      rl_TraceFH;           /* global trace console        */
  58.    struct List rl_TaskList;           /* REXX task list        */
  59.    WORD      rl_NumTask;           /* task count            */
  60.    struct List rl_LibList;           /* Library List header        */
  61.    WORD      rl_NumLib;           /* library count        */
  62.    struct List rl_ClipList;           /* ClipList header        */
  63.    WORD      rl_NumClip;           /* clip node count        */
  64.    struct List rl_MsgList;           /* pending messages        */
  65.    WORD      rl_NumMsg;           /* pending count        */
  66.    struct List rl_PgmList;           /* cached programs        */
  67.    WORD      rl_NumPgm;           /* program count        */
  68.  
  69.    UWORD     rl_TraceCnt;           /* usage count for trace console */
  70.    WORD      rl_avail;
  71.    };
  72.  
  73. /* Global flag bit definitions for RexxMaster                */
  74. #define RLFB_TRACE RTFB_TRACE           /* interactive tracing?        */
  75. #define RLFB_HALT  RTFB_HALT           /* halt execution?        */
  76. #define RLFB_SUSP  RTFB_SUSP           /* suspend execution?        */
  77. #define RLFB_STOP  6               /* deny further invocations    */
  78. #define RLFB_CLOSE 7               /* close the master        */
  79.  
  80. #define RLFMASK    (1<<RLFB_TRACE) | (1<<RLFB_HALT) | (1<<RLFB_SUSP)
  81.  
  82. /* Initialization constants                        */
  83. #define RXSCHUNK   1024           /* allocation quantum        */
  84. #define RXSNEST    32               /* expression nesting limit    */
  85. #define RXSTPRI    0               /* task priority        */
  86. #define RXSSTACK   4096           /* stack size            */
  87.  
  88. /* Character attribute flag bits used in REXX.                */
  89. #define CTB_SPACE   0               /* white space characters    */
  90. #define CTB_DIGIT   1               /* decimal digits 0-9        */
  91. #define CTB_ALPHA   2               /* alphabetic characters    */
  92. #define CTB_REXXSYM 3               /* REXX symbol characters    */
  93. #define CTB_REXXOPR 4               /* REXX operator characters    */
  94. #define CTB_REXXSPC 5               /* REXX special symbols        */
  95. #define CTB_UPPER   6               /* UPPERCASE alphabetic        */
  96. #define CTB_LOWER   7               /* lowercase alphabetic        */
  97.  
  98. /* Attribute flags                            */
  99. #define CTF_SPACE   (1 << CTB_SPACE)
  100. #define CTF_DIGIT   (1 << CTB_DIGIT)
  101. #define CTF_ALPHA   (1 << CTB_ALPHA)
  102. #define CTF_REXXSYM (1 << CTB_REXXSYM)
  103. #define CTF_REXXOPR (1 << CTB_REXXOPR)
  104. #define CTF_REXXSPC (1 << CTB_REXXSPC)
  105. #define CTF_UPPER   (1 << CTB_UPPER)
  106. #define CTF_LOWER   (1 << CTB_LOWER)
  107.  
  108. #endif
  109.